[TOC]
1 YKit Mock配置
1.1 设计
- 使用Mockjs
- YKit Mock数据使用 Mockjs, 相应的Mockjs文档和示例
- Mockjs的语法规范
- Mockjs数据规则参考mockJSON, FEKit也使用了这个规则
1.2 YKit Mock启动方式
ykit server
启动时如果配置了mock
插件会自动启动mock serverykit server mock=false
方式启动可以不启动mock server- 如果使用了ykit server并配置了mock,直接访问mock接口无法访问,需要先访问mock文件对应项目的某个资源,让ykit加载到对应的mock配置,这种情况会在项目上一层启动ykit server的时候出现。
1.3 YKit Mock配置文件
默认搜索项目根目录下的
mock.js
或者mock.json
,推荐使用mock.js
可以自定义配置文件的路径,在YKit的配置文件
ykit.js
或者ykit-xxx.js
中修改1
2
3
4
5
6
7
8
9module.exports = {
plugins: [{
name: 'mock',
options: {
confPath: './tests/mockdata/mockconf.js'
}
}],
// ...
};
mock文件支持两种配置方式
FEKit原来支持的方式
key
=>value
形式, 其中key
为路径的匹配规则,value
为对应的mock数据指向;pattern
=>respondwith
形式,其中pattern
为路径匹配规则,respondwith
为对应的mock数据指向;
1
2
3
4
5
6
7module.exports = {
'/uri/to/api':'relative/path/to/mock/data/file',
rules:[{
pattern: "/uri/pattern/to/match",
respondwith:'relative/path/to/mock/data/file',
}]
}
YKit 增加的方式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24module.exports = [{
// pattern:'/api/list.json',
// responder:'./data/listData.json'
}, {
pattern: /^\/api\/(\w+)\.json.*$/,
responder: './data/$1Data.mockjson'
}, {
pattern: /^\/api\/(\w+)\.json.*$/,
responder: './data/$1Data.js'
}, {
pattern: '/api/list.json',
responder: {
"ret": true,
"data": [{
"name": "Li Lei",
"email": "lilei@test.com",
"registerDateTime": "2020-10-01 22:11:11"
}, {
"name": "Han Meimei",
"email": "hanmeimei@test.com",
"registerDateTime": "2020-10-01 22:11:11"
}]
}
}]json文件的配置跟上面直接出的数据一样
mockjson的数据有些区别,如下
1
2
3
4
5
6
7
8
9
10
11
12{
"ret|0-1":true,
"data|2-5":[{
"name":"@last @first",
"email":"@email",
"registerDateTime": "@date('yyyy-MM-dd') @time('HH:mm:ss')"
},{
"name":"@last @first",
"email":"@email",
"registerDateTime": "@date('yyyy-MM-dd') @time('HH:mm:ss')"
}]
}
YKit对jsonp和直接函数的支持
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22module.exports = [{
pattern: '/api/list.json',
responder:function(req,res){ //两个参数
//这里可以有更多其他的处理过程
res.end(JSON.stringify({
"ret": true,
"data": [{
"name": "Li Lei",
"email": "lilei@test.com",
"registerDateTime": "2020-10-01 22:11:11"
}, {
"name": "Han Meimei",
"email": "hanmeimei@test.com",
"registerDateTime": "2020-10-01 22:11:11"
}]
}))
}
},{
pattern: '/api/list.json',
responder: './data/listData.json',
jsonp:'jsCallback' //配置callbackKey
}]
- YKit Mock比 FEKit Mock强大的地方
- 可以支持多个工程的mock文件,fekit只能同时用一个
- YKit匹配的URL支持正则匹配到数据路径,这样可以批量造数据而配置一个规则,不用一个一个配
- Mockjs 比 MockJSON强大得多,支持中文mock数据,可谓青出于蓝而胜于蓝
2 YKit Proxy 配置
2.1 设计
- YKit Proxy 使用了蛟神写的一个牛逼的代理服务Jerry Proxy,主要功能
- HOST 管理
- 代理服务
- 请求日志和断点
- 网络限速
2.2 YKit Proxy 代理配置
2.2.1 Jerry Proxy 启动
- 使用
sudo ykit server -x
启动带代理服务的ykit server - 使用
ykit server
启动日志中的[JerryProxy] Available on: http://127.0.0.1:\d+/jerry
中的URL访问代理服务器的界面
2.2.2 Jerry Proxy 配置
2.2.2.1 服务器组配置
- 这里配置环境以及每套环境对应的机器,方便在HOST管理的地方被引用到
2.2.2.2 URL MAP
- 请求转发的配置,支持转到本地文件,或者转发到其他页面
2.2.2.3 代理面板
- 配置是否使用HTTPS代理和网络限速
- 配置HOST分组,Jerry Proxy会为每一个发现的YKit工程新建一个对应的分组
- HOST 规则的配置,参考添加规则的说明
3 代码地址
- 所有的代码可以在**这里**找到。
4 参考资料
最后更新: 2022年03月02日 03:32
原始链接: http://rawbin-.github.io/dev-tools/2017-07-03-ykit-mock-ref/